package com.example.validatestudy.demos.se;

import com.alibaba.fastjson.JSONObject;

import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;

public class BigDecimalTest {

    public static void main(String[] args) {

//        System.out.println("jmsnc".equals(null));
//
//        List items = new ArrayList<>();
//        items.add("11");
//        if(!CollectionUtils.isEmpty(items) && 1 <= 2){
//            System.out.println("不为空");
//        }else {
//            System.out.println("为空");
//        }

//        BigDecimal a = new BigDecimal(100);
//        BigDecimal b = new BigDecimal(2);
//        BigDecimal r =  a.divide(b, 2, BigDecimal.ROUND_HALF_UP);
//        System.out.println(r);
//        JSONObject jsonObject = new JSONObject();
//        jsonObject.put("result",r);
//        System.out.println(jsonObject);

        List<String> list = Arrays.asList("a","b","a,b");
        System.out.println(contractDistinct(list));

        //总营收之和
        BigDecimal v1 = new BigDecimal("-235196.6600");
        BigDecimal v2 = new BigDecimal("0.0000");
//        BigDecimal v2 = getBigDecimalFromJson(new JSONObject(),"a");
        if(BigDecimal.ZERO.equals(v2)){
            System.out.println("---00000000");
        }else{
            System.out.println(v1.divide(v2,4, BigDecimal.ROUND_HALF_UP));
        }

//        BigDecimal a = new BigDecimal("0");
//        BigDecimal b = new BigDecimal("0");
//        if(BigDecimal.ZERO.equals(b)){
//            System.out.println("---00000000");
//        }
//        if(moreThanZero(b)){
//            System.out.println(a.divide(b,4, BigDecimal.ROUND_HALF_UP));
//        }


//        System.out.println(moreThanZero(new BigDecimal("0")));

//        String[] empNoArr = "1, 2, 3".trim().split(",");
//        List<String> empNoList = Arrays.asList(empNoArr);
//        empNoList = empNoList.stream()
//                .map(String::trim)
//                .collect(Collectors.toList());
//        System.out.println(empNoArr);

//
//        BigDecimal itemValueNumber = new BigDecimal("12.4846");
//        BigDecimal revenueTotal = new BigDecimal("2");
//        BigDecimal result = itemValueNumber.multiply(new BigDecimal(100)).divide(revenueTotal, 2, BigDecimal.ROUND_HALF_UP);
//        System.out.println(result);
    }

    private static String contractDistinct(List<String> values) {
        String result = values.stream().filter(item-> Objects.nonNull(item))
                .map(Object::toString)
                .distinct()
                .collect(Collectors.joining(","));
        List<String> strList = Arrays.asList(result.split(","));
        return  strList.stream()
                .distinct()
                .collect(Collectors.joining(","));
    }


    /**
     * 判断 BigDecimal不为空且大于0
     * @param bigDecimal
     * @return
     */
    public static boolean moreThanZero(BigDecimal bigDecimal){
        if(bigDecimal!=null && bigDecimal.compareTo(BigDecimal.ZERO)>0){
            return true;
        }
        return false;
    }


    /**
     * 获取BigDecimal，默认为0
     * @param jsonObject
     * @param propertyName
     * @return
     */
    public static BigDecimal getBigDecimalFromJson(JSONObject jsonObject, String propertyName){
        try {
            BigDecimal bigDecimal = BigDecimal.ZERO;
            Object obj = jsonObject.get(propertyName);
            if(obj instanceof Date){
                Date date = Optional.ofNullable(jsonObject.getDate(propertyName)).get();
                if(date != null){
                    bigDecimal = BigDecimal.valueOf(date.getTime());
                }
            }else {
                bigDecimal = Optional.ofNullable(jsonObject.getBigDecimal(propertyName)).orElse(BigDecimal.ZERO);
            }
            return bigDecimal;
        }catch (Exception e){
            return BigDecimal.ZERO;
        }
    }


}
